Electronic data systems are frequently interconnected using network communication systems. Area-wide networks and channels are two approaches that have been developed for computer network architectures. Traditional networks (e.g., LAN's and WAN's) offer a great deal of flexibility and relatively large distance capabilities. Channels, such as the Enterprise System Connection (ESCON) and the Small Computer System Interface (SCSI), have been developed for high performance and reliability. Channels typically use dedicated short-distance connections between computers or between computers and peripherals.
Features of both channels and networks have been incorporated into a new network standard known as "Fibre Channel". Fibre Channel systems combine the speed and reliability of channels with the flexibility and connectivity of networks. Fibre Channel products currently can run at very high data rates, such as 266 Mbps or 1062 Mbps. These speeds are sufficient to handle quite demanding applications, such as uncompressed, full motion, high-quality video. ANSI specifications, such as X3.230-1994, define the Fibre Channel network. This specification distributes Fibre Channel functions among five layers. The five functional layers of the Fibre Channel are: FC-0--the physical media layer; FC-1--the coding and encoding layer; FC-2--the actual transport mechanism, including the framing protocol and flow control between nodes; FC-3--the common services layer; and FC-4--the upper layer protocol.
There are generally three ways to deploy a Fibre Channel network: simple point-to-point connections; arbitrated loops; and switched fabrics. The simplest topology is the point-to-point configuration, which simply connects any two Fibre Channel systems directly. Arbitrated loops are Fibre Channel ring connections that provide shared access to bandwidth via arbitration. Switched Fibre Channel networks, called "fabrics", are a form of cross-point switching.
Conventional Fibre Channel Arbitrated Loop ("FC-AL") protocols provide for loop functionality in the interconnection of devices or loop segments through node ports. However, direct interconnection of node ports is problematic in that a failure at one node port in a loop typically causes the failure of the entire loop. This difficulty is overcome in conventional Fibre Channel technology through the use of hubs. Hubs include a number of hub ports interconnected in a loop topology. Node ports are connected to hub ports, forming a star topology with the hub at the center. Hub ports which are not connected to node ports or which are connected to failed node ports are bypassed. In this way, the loop is maintained despite removal or failure of node ports.
For example, FIG. 1A illustrates a hub 100 with six hub ports 102, 104, 106, 108, 110, 112 (the number of hub ports and node ports illustrated in FIGS. 1A and 1B is for illustrative purposes only and does not limit the application of the technology provided by the preferred embodiment). Hub ports 102-112 are interconnected by internal hub links 114, 116, 118, 120, 122, 124. Four node ports 126, 128, 130, 132 are attached to hub ports 102, 106, 110, 112, respectively. A physical star topology is created by node ports 126-132 around hub 100. The internal connection of hub ports 102-112 by internal hub links 114-124 forms an internal loop within hub 100 and creates a loop topology among node ports 126-132.
Each node port is connected to a hub port by a pair of data channels. For example, node port 126 is connected to hub port 102 by data channels 134 and 136. Data channel 134 transmits data from hub port 102 to node port 126. Data channel 136 transmits data from node port 126 to hub port 102. In this way, a datapath is created around the loop including each of the hub ports and the node ports.
A synchronization problem occurs from the accumulation of time based noise (ie., loss of precision in a signal), commonly referred to as "jitter", in signals. As a signal passes through logic circuits, a finite amount of jitter is typically introduced to the signal. Jitter accumulates as a signal passes through progressively more logic circuits and accumulates more noise. Because the datastream in a conventional hub typically passes through multiple hub ports before reaching the destination node port, the accumulated jitter may be enough to prevent the destination node port from being able to recover a suitable clock signal from the datastream. If this recovery fails, the node port typically sees many invalid 10B characters and so has a high bit-error rate.
If two node ports are communicating across hubs, the number of hub ports and logic circuits through which the datastream passes typically increases, resulting in yet more jitter. This increase in jitter from connecting hub ports in hub to hub connections limits the cascadability of hubs in conventional implementations.
For example, as shown in FIG. 1B, two hubs 150, 170 are connected through a pair of hub ports 158, 172. Each hub 150, 170 has four hub ports 152, 154, 156, 158, and 172, 174, 176, 178, respectively. Two node ports 160, 162 are connected to hub ports 154, 156 of hub 150, and two node ports 180, 182 are connected to hub ports 174, 176 of hub 170. Two data channels 184, 186 interconnect hub port 158 and hub port 172. Data channel 184 carries data from hub port 172 to hub port 158. Data channel 186 carries data from hub port 158 to hub port 172. Due to the interconnection of hubs 150 and 170 the number of hub ports in the loop increases from four to eight. Thus, the number of hub ports through which the datastream passes may substantially increase. Before the interconnection, when node port 160 sends data to node port 162, the data passes through two hub ports: 154 and 156. After the interconnection, node port 160 may send data to node port 162, node port 180, or node port 182. When node port 160 sends data to node port 182, the data passes through eight hub ports and two node ports: 154, 156, 162 (where the data is re-timed), 156, 158, 172, 174, 180 (re-timed), 174, and 176. Thus, as hubs are cascaded to increase the number of node ports in the loop, the number of hub ports through which data may pass increases and so the potential accumulation of jitter increases.
Under conventional FC-AL protocols, when synchronization is lost, such as by accumulated jitter as described above, loop initialization primitive ("LIP") primitive sequences may be generated by one or more node ports to reinitialize the loop. LIP primitive sequences are formed from three consecutive LIP ordered sets of the same type. LIP ordered sets are known and defined in conventional FC-AL protocols. When node ports receive a LIP primitive sequence, node ports typically end ordinary processing and may generate LIP primitive sequences of their own. Under conventional FC-AL protocols, the loop may not return to ordinary processing for as long as approximately 500 to 600 microseconds. This delay in and of itself is an undesirable result of synchronization errors. In addition, some computer software applications being used across the loop may not be tolerant of the LIP process, and, at the very least, all applications experience a delay. An application may "crash" (i.e., abruptly and completely stop execution) and need to be restarted to continue processing. Such a crash increases the amount of delay experienced by users or other processes connected to the loop. In addition, data loss or data corruption may result as data storage devices may not be properly accessed upon the crash generated by the LIP process.
Accordingly, the inventors have determined that it would be desirable to provide a hub port which internally synchronizes signals passed around a loop network having characteristics similar to Fibre Channel Arbitrated Loop networks.